(1) Field of the Invention
The invention relates to data transfer systems. More specifically the invention relates to arbitration on a full duplex bus.
(2) Related Art
For high speed data transfers over a distance, various high speed serial data transfer mechanisms have been developed. The IEEE Standard for a High Performance Serial Bus, IEEE Std. 1394-1995 published Aug. 30, 1996 (1394-1995 Standard) and its progeny provide a high speed serial protocol which permits implementation of high speed data transfers. The existing progeny includes P1394a Draft Standard for a High Performance Serial Bus (1394a Standard) and P1394b Draft Standard for a High Performance Serial Bus (1394b Standard). Generically, systems implementing 1394-1995, 1394a, 1394b or subsequent revisions and modifications thereof are referred to herein as 1394 systems.
In 1394 systems a plurality of nodes are organized into a tree topology. Additionally, all nodes are initially deemed peer to peer but on bus reset, one node assumes root status while the remaining nodes become branches and leaves of the topology. Both 1394-1995 and 1394a are half-duplex protocols. Thus, data may only flow in one direction at any given time. Both of these protocols employ a discrete arbitration phase during which all nodes seeking access to the bus send arbitration requests to the root node. The root node then resolves the arbitration and grants the bus to one of the arbitrating nodes. During this discrete arbitration phase no other useful work can be done on the bus. Desire to eliminate the discrete arbitration phase has spawned various embedded token approaches in which arbitration requests are embedded as tokens within the data packet itself.
The 1394b standard provides a full-duplex serial bus protocol. This has permitted a combination of embedded token and propagation of requests on the unused signal line to eliminate the discrete arbitration phase. Specifically, when the packet is being sent by a parent node, requests from the children nodes are free to propagate on the unused signal line going back to the parent node. If however, the packet is directed to a parent node the request must be embedded within the data stream. All requests are still handled by the sole root node which remains fixed after system initialization. Accordingly, token embedding will occur on nearly all transactions on at least some bus segments. Embedding tokens requires that the elasticity buffer of each PHY have extra capacity so as to allow insertion of the extra symbol into the data stream. The larger elasticity buffer increases the latency of repetition through each PHY and therefore increases latency of the overall bus system. Moreover, because arbitration tokens must frequently be embedded in the packet, there is a practical limit to the size and number of tokens that can be used for arbitration.
The 1394a standard defines a fairness interval as a time period delimited by arbitration reset gaps. Within a fairness interval, the total number of asynchronous packets that may be transmitted by a node is limited. The limit of each node may be explicitly established by the bus manager or may be implicit. Arbitration reset gaps are long periods of idle time with no arbitration request or bus traffic, which signal all nodes that they can enter a discrete arbitration phase of the next fairness interval. Thus, significant bus bandwidth is wasted in transitioning between fairness intervals. As used herein, fairness interval will refer to a period of time during which a node may transmit a limited number of asynchronous packets. Thus, any explicit requirement of a subaction gap to delimit the fairness interval has been eliminated as the term is used herein.
In view of the foregoing it would be desirable to be able to reduce the negative effects on bus bandwidth caused by fairness interval transitions.
A system and method for performing early arbitration is disclosed. A state machine generates a best arbitration request for a current fairness interval a next fairness interval. The request is encoded with a priority identifying which of the current or next fairness interval the request corresponds. A transceiver is coupled to the state machine and a port.